From 8b5d626aa7df179649e53548ef3d485add34c9b0 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 1 Jul 2014 15:40:33 -0700 Subject: [PATCH] Don't call generic methods on trait objects Closes #102 --- src/bin/cargo-test.rs | 6 ++++-- src/cargo/core/package_id.rs | 5 +---- src/cargo/lib.rs | 4 ++-- src/cargo/util/config.rs | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/bin/cargo-test.rs b/src/bin/cargo-test.rs index 4becf95a6..d4f2c7c00 100755 --- a/src/bin/cargo-test.rs +++ b/src/bin/cargo-test.rs @@ -15,7 +15,7 @@ use cargo::ops; use cargo::{execute_main_without_stdin}; use cargo::core::{MultiShell}; use cargo::util; -use cargo::util::{CliResult, CliError}; +use cargo::util::{CliResult, CliError, CargoError}; use cargo::util::important_paths::find_project_manifest; #[deriving(PartialEq,Clone,Decodable)] @@ -56,7 +56,9 @@ fn execute(options: Options, shell: &mut MultiShell) -> CliResult> { })); for file in walk { - try!(util::process(file).exec().map_err(|e| CliError::from_boxed(e.box_error(), 1))); + try!(util::process(file).exec().map_err(|e| { + CliError::from_boxed(e.box_error(), 1) + })); } Ok(None) diff --git a/src/cargo/core/package_id.rs b/src/cargo/core/package_id.rs index 1a421fe63..7e268c45c 100644 --- a/src/cargo/core/package_id.rs +++ b/src/cargo/core/package_id.rs @@ -120,10 +120,7 @@ impl>> for PackageId { fn decode(d: &mut D) -> Result> { - let vector: Vec = match Decodable::decode(d) { - Ok(v) => v, - Err(e) => return Err(e.to_error()) - }; + let vector: Vec = try!(Decodable::decode(d)); PackageId::new( vector.get(0).as_slice(), diff --git a/src/cargo/lib.rs b/src/cargo/lib.rs index 314f9d0ad..7acdddcba 100644 --- a/src/cargo/lib.rs +++ b/src/cargo/lib.rs @@ -50,8 +50,8 @@ mod cargo { #[macro_export] macro_rules! try ( ($expr:expr) => ({ - use cargo::util::CargoError; - match $expr.map_err(|err| err.to_error()) { + use cargo::util::FromError; + match $expr.map_err(FromError::from_error) { Ok(val) => val, Err(err) => return Err(err) } diff --git a/src/cargo/util/config.rs b/src/cargo/util/config.rs index 34e7ec5a6..e733f672e 100644 --- a/src/cargo/util/config.rs +++ b/src/cargo/util/config.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use serialize::{Encodable,Encoder}; use toml; use core::MultiShell; -use util::{CargoResult, CargoError, ChainError, Require, internal, human}; +use util::{CargoResult, ChainError, Require, internal, human}; use cargo_toml = util::toml; -- 2.30.2